Reduce memory overhead for TransportableObject #1883
+255
−181
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Always represent TransportableObject internally as a single array of bytes. Various properties, such as
header
, orobject_string
, decode various segments of the byte array. This allowsTransportableObject
to be serialized efficiently by simply writing out the byte array.Store the serialized object as raw picklebytes without base64-encoding. As a result,
get_deserialized()
no longer needs to create a temporary copy of the raw picklebytes. The data segment is directly unpickled. Base64-encoding is applied to the data segment or the entire internal buffer whenever a print friendly representation of theTransportableObject
is desired. A backward compatibility layer is introduced to automatically handleTransportableObject
s serialized in the earlier format.